package car.aistar.dao;

import car.aistar.dto.XXRyuyue;
import car.aistar.entity.CarCart;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * (CarCart)表数据库访问层
 *
 * @author makejava
 * @since 2020-09-30 20:14:28
 */
public interface CarCartDao {


//    /**
//    *@Author 肖相荣
//    *@Description //TODO 测试勿删
//    *@Date 21:09 2020/10/4
//    *@Param
//    *@return
//    **/
//    @Select("select r.res_time as resTime,u.uname uname,u.uphone as uphone,r.res_car_id as resCarId,c.car_carNumber as carCarnumber from user_detail u,car_detail c,reserve r where r.res_car_id=c.id and r.u_id=u.id and r.s_id=${id} and concat(r.res_time,u.uname,u.uphone,r.res_car_id,c.car_carNumber) like '%${search}%'")
//    List<XXRyuyue> findAllYuyue(@Param("id") Long id, @Param("search") String search);


    /**
    *@Author 肖相荣
    *@Description //TODO 通过销售人员id进行多表查询
    *@Date 20:26 2020/10/1
    *@Param
    *@return
    **/
    @Select("select car_cart.id, car_cart.u_id,car_cart.c_id,car_cart.ca_baseprice,car_cart.ca_price,car_cart.ca_sellprice from car_cart  JOIN car_detail ON car_cart.c_id=car_detail.id where car_detail.sal_id=${value} ")
    List<CarCart> findAllBysellerId(long id);
    /**
     *@Author 肖相荣
     *@Description //TODO findAll
     *@Date 20:26 2020/10/1
     *@Param
     *@return
     **/
    @Select("select * from car_cart ")
    List<CarCart> findAll();
/**
*@Author 肖相荣
*@Description //TODO 实验
*@Date 20:58 2020/10/4
*@Param [id, search]
*@return java.util.List<car.aistar.entity.CarCart>
**/
    @Select("select * from car_cart where ca_price like '%${search}%' and id = ${id} ")
    List<CarCart> findAlls(@Param("id") Long id,@Param("search") String search);


    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    CarCart queryById(Long id);

    /**
     * 查询指定行数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<CarCart> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param carCart 实例对象
     * @return 对象列表
     */
    List<CarCart> queryAll(CarCart carCart);

    /**
     * 新增数据
     *
     * @param carCart 实例对象
     * @return 影响行数
     */
    int insert(CarCart carCart);

    /**
     * 修改数据
     *
     * @param carCart 实例对象
     * @return 影响行数
     */
    int update(CarCart carCart);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Long id);

}